/*demo4:在manage进程中启动2个子进程（ipq_user_rw，proread）
 *      ipq_user_rw进程，循环抓包，发送给procread
 *	procread进程，读取这些数据包，并打印出来
 *
 *代码测试中遇到的问题和解决：
 *      ipq_user_rw进程中发来的数据是unsigned char类型的，procread中接受数据的也应该是unsigned char 类型的数组，否则有问题。
 *
 *	读写双方必须在通信之前，就要确定一条消息有多长，这里就存在一个问题：
 *		！如何确定实际消息的边界。 
 *	关于管道打开的阻塞
 *		！如果是以只读或者只写的方式打开管道，那么如果打开的时候，另一方没有打开，就会阻塞直到...
 *		！否则，如果读进程请求数为50，那么就会导致读一次就把消息全读出来了。
 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>

int main(int argc,char * argv[],char ** environ)
{
	int i;	
	pid_t pid1,pid2;
	int wres1,wres2;
	int stat_val;

	pid1=fork();
       	if(pid1==0)
	{
		execve("ipq",argv,environ);
	}
	
	if((pid2=fork())==0)
	{
		//sleep(1);

		execve("proc",argv,environ); 
	}
	
	//printf("this is father process,pid1=%d,pid2=%d\n",pid1,pid2);
	wres1=wait(&stat_val);/*如果不加参数stat_val，那么wait的返回值不正常*/
			      /*stat_val的值，表示对子进程善后操作的成功与否，若为0表示善后成功*/
        //wres2=wait(&stat_val);
	//printf("1st wait returns:%d , 2nd wait returns %d\n",wres1,wres2);


}
